#pragma once
#include "src/common/common.h"

template<typename T>
__global__ void cuda_gemm(bool transpose_l,bool transpose_r,T* A,T* B,T* C,int rows,int cols,int total_num);


// template<>
// __global__ void cuda_gemm(bool tranpose_l,bool transpose_r,half* A,half* B,half* C,int rows,int cols,int total_num);


template<typename T>
void launch_cuda_gemm(bool tranpose_l,bool transpose_r,T* A,T* B,T* C,int rows,int cols,int blocksize,int total_nums);


// template<typename T>
// void launch_cpu_gemm(bool tranpose_l,bool transpose_r,T* A,T* B,T* C,int rows,int cols);

// template<>
// void launch_cpu_gemm(bool tranpose_l,bool transpose_r,half* A,half* B,half* C,int rows,int cols);